This application is based on an application No. 11-250864 filed in Japan, the content of which is hereby incorporated by reference.
(1) Field of the Invention
The present invention relates to a data transfer apparatus that relays a signal that needs to be transferred in real-time. In particular, the present invention relates to a technique for controlling the retransmission of data on a transfer path after the data has been relayed.
(2) Description of the Prior Art
Data transfer apparatuses have been developed for relaying ISDN (Integrated Services Digital Network) data which needs to be transferred in real time. Such apparatuses receive the ISDN data once and convert the data to an infrared signal which is transmitted to a peripheral device. When necessary, the retransmission control is performed data to convert the data to an infrared signal for retransmission.
The infrared signals transmitted by such a data transfer apparatus are received by another data transfer apparatus whose construction is a mirror image of the first apparatus. This second data transfer apparatus converts the infrared signal back to ISDN data. In this way, two data transfer apparatuses can be used to form a wireless ISDN data transfer link.
FIG. 1 is a block diagram showing the overall construction of a conventional data transfer apparatus that transfers data in accordance with retransmission control.
As shown in FIG. 1, the conventional data transfer apparatus includes an input unit 51, an ISDN control unit 52, a calculation unit (hereafter CPU) 53, an address decoding unit 54, a memory 55, and an infrared signal communication unit 56. The input unit 51 receives an input of ISDN data. The ISDN control unit 52 analyzes and demultiplexes the received ISDN data and converts it into data that can be read by the CPU 53. The CPU 53 outputs an address signal that specifies one of the ISDN control unit 52, the memory 55, and the infrared signal communication unit 56, together with a read signal or a write signal that is a control signal for performing a data read or a data write. The address decoding unit 54 decodes the address signals outputted by the CPU 53 and generates chip select signals for specifying the units in the data transfer apparatus. The memory 55 is used for data reads and data writes by the CPU 53. The infrared signal communication unit 56 converts the data in the memory 55 into an infrared signal that it outputs.
Note that the ISDN control unit 52, the memory 55, and the infrared signal communication unit 56 are each composed of separate chips.
The infrared signal communication unit 56 includes an output unit 57 for outputting infrared signals to a peripheral device and an input unit 58 for receiving a retransmission request signal that the peripheral device sends as infrared data.
The following describes the operation of each component in the data transfer apparatus described above. This explanation first describes the standard operation and then the operation when data is retransmitted in response to the CPU 53 having received a predetermined retransmission request signal sent by as peripheral device.
FIG. 2 shows the sequence of data inputs and outputs within this conventional data transfer apparatus.
Note that the sequence shown in this drawing also shows the operations performed by the infrared interface of the peripheral device that receives infrared data from the present data transfer apparatus.
During normal operation, the input unit 51 receives an input of ISDN data, which is sent to the ISDN control unit 52 (steps S11, S21). The ISDN control unit 52 analyzes the ISDN data and demultiplexes it to obtain data that can be read by the CPU 53. This data is temporarily stored in the registers provided inside the CPU 53 (steps S12, S22)
In more detail, when data is to be sent from the ISDN control unit 52 to the CPU 53, the CPU 53 outputs an address signal, which shows the address assigned to the ISDN control unit 52, to the address bus and a read signal R to the read signal line.
The address decoding unit 54 decodes the address signal and outputs a chip select signal CS_I specifying the ISDN control unit 52.
The ISDN control unit chip select signal CS_I specifies the ISDN control unit 52. The read signal R has data read out from the ISDN control unit 52 and transferred to the CPU 53, where it is temporarily stored in the internal registers.
Next, the data that is temporarily stored in the registers of the CPU 53 is sent to the infrared signal communication unit 56 (steps S14, S24). The infrared signal communication unit 56 generates infrared data from the received data and has the output unit 57 output an infrared signal in accordance with this infrared data (steps S15, S25).
A retransmission request signal outputted by the peripheral device us received by the input unit 58 (step S16).
The infrared signal communication unit 56 outputs the received retransmission request signal to the CPU 53 (step S17).
The data stored in the registers in the CPU 53 is stored in the memory 55 in case a retransmission request is received (step S13). When the CPU 53 receives a retransmission request signal, the data stored in the memory 55 is sent via the CPU 53 (step S18) to the infrared signal communication unit 56 (step S19). The infrared signal communication unit 56 generates infrared data from the received data and has the output unit 57 output an infrared signal in accordance with the infrared data (step S20).
In more detail, when data is sent from the CPU 53 to the memory 55, the CPU 53 first outputs a write signal W and an address signal showing an address that is assigned to the memory 55.
The address decoding unit 54 decodes the address signal and outputs a chip select signal CS_F that specifies the memory 55.
This memory chip select signal CS_F specifies the memory 55, so that the data that is stored in the registers in the CPU 53 is stored in the memory 55.
When data is sent from the memory 55 to the infrared signal communication unit 56 via the CPU 53, the CPU 53 outputs a read signal R and an address signal that shows an address assigned to the memory 55.
The address decoding unit 54 decodes this address signal and outputs a chip select signal CS_F that specifies the memory 55.
This memory chip select signal CS_F selects the memory 55, so that data in the memory is read out by the CPU 53 and stored in the internal registers in the CPU 53.
After this, the CPU 53 outputs a write signal W and an address signal that specifies an address assigned to the infrared signal communication unit 56.
The address decoding unit 54 decodes this address signal and outputs a chip select signal CS_O that specifies the infrared signal communication unit 56.
The infrared signal communication unit 56 is specified by this infrared signal communication unit chip select signal CS_O, so that the data stored in the registers of the CPU 53 is written into the infrared signal communication unit 56 where it is processed thereafter.
The procedure described above has data transferred by the output unit 57 using standard infrared signals. This transferred data is based on the ISDN data stored in the memory 55. By sending a retransmission request signal to the CPU 53, a peripheral device can have the data in the memory 55 (hereafter xe2x80x9cretransmission dataxe2x80x9d) transferred to the infrared signal communication unit 56 where, in addition to the standard output described above, the output unit 57 outputs an infrared signal based on the retransmission data.
The following describes the retransmission of data in more detail. The retransmission data is transmitted from the memory 55 to the infrared signal communication unit 56 in the same way as during standard data transmission. This means that the CPU 53 first outputs a read signal R and an address signal showing an address that is assigned to the memory 55.
The address decoding unit 54 decodes the address signal and outputs a chip select signal CS_F that specifies the memory 55.
This memory chip select signal CS_F specifies the memory 55, so that the retransmission data stored in the memory 55 is read out by the CPU 53 and is stored in the internal registers of the CPU 53.
Next, the CPU 53 outputs a write signal W and an address signal that shows an address assigned to the infrared signal communication unit 56.
The address decoding unit 54 decodes this address signal and outputs a chip select signal CS_O that specifies the infrared signal communication unit 56.
The infrared signal communication unit 56 is specified by this infrared signal communication unit chip select signal CS_O, so that the data stored in the registers of the CPU 53 is written into the infrared signal communication unit 56 where it is processed thereafter.
By performing the above procedure, the conventional data transfer apparatus can convert ISDN data to infrared data and transfer the infrared data while performing control so as to retransmit infrared data for ISDN data that is inputted into the data transfer apparatus.
In readiness for eventualities such as an outputted infrared signal failing to reach the peripheral device that receives signals from the output unit 57, the CPU 53 in this conventional data transfer apparatus reads out data that has been received by the ISDN control unit 52 and writes the data into the memory 55. When data is to be retransmitted, the data that has been written into the memory 55 is read out by the CPU 53 and written into the infrared signal communication unit 56.
The above method suffers from the following drawback. In some cases, real-time transfer is required for the data being transferred, such as when the data transfer apparatus is used to relay audio data for a telephone conversation. The time taken by the processing between the input of ISDN data and the output of the infrared signal or by the processing required for retransmission can appear as a time lag in the received audio, thereby impeding the telephone conversation. As a result, the time taken between the input of the ISDN data and the output of the infrared signal and the time taken by retransmission need to be minimized.
As a result, there are demands for a data transfer apparatus reduces the time taken by internal data transfers and so can properly handle data, such as audio data for a telephone conversation, that needs to be transferred in real time.
In addition to performing internal data transfers for the data transfer apparatus, the CPU 53 also has to perform judgements, such as a judgement as whether a retransmission request signal has been received. This means that the CPU 53 has a high processing load, which reduces the speed of the data transfers within the data transfer apparatus and increases the time taken between the receipt of a retransmission request signal and the completion of the data retransmission. As a result, data cannot be retransmitted soon after a retransmission request signal is received. This reduces the number of retransmission that can be performed.
In view of the stated problem, a first object of the present invention is to provide a data transfer apparatus that can transfer data at a speed that is closer to real time.
The second object of the present invention is to provide a data transfer apparatus that can quickly retransmit data that has not been received properly by the transfer destination.
The first object of the present invention can be achieved by a data transfer apparatus that receives data, which should be transferred in real time, from a first external device and outputs the data to a second external device, the second external device receiving the data outputted by the data transfer apparatus and outputting a retransmission request signal for the data to the data transfer apparatus when the data is not received properly, the data transfer apparatus including: a receiving unit for receiving data from the first external device; a storage unit for storing the data received by the receiving unit; an output unit for receiving data and outputting the data to the second external device; a retransmission request receiving unit for receiving a retransmission request signal from the second external device; and a transfer control unit for having a first transfer performed when the receiving unit has received data from the first external device and a second transfer performed when the retransmission request receiving unit has received the retransmission request signal, the first transfer transferring the data directly to both the output unit and the storage unit in parallel using direct memory access (DMA), and the second transfer transferring data, which has already been stored in the storage unit by the first transfer, to the output unit.
With the stated construction, the data is transferred by DMA directly from the receiving unit to the storage unit and the output unit in parallel. Transfer to two components is performed in a single step and is performed without the data passing the CPU. This means that the data transfer apparatus can transfer data at high speed.
The second object of the present invention can be achieved by having the second transfer transfer the data stored in the storage unit to the output unit using DMA.
With the stated construction, when a retransmission request signal is received, the data stored in the storage unit is transferred to the output unit using DMA. This means that the data is not transferred via a processing unit such as a CPU. This alleviates the processing load of the CPU and means that the data transfer apparatus can transfer data at high speed.
Here, the storage unit may be a FIFO (first-in, first-out) memory that temporarily stores data received from the receiving unit, and the second transfer may also transfer the data outputted by the FIFO memory back into the FIFO memory using DMA.
The stated construction is capable of high-speed data reads and stores the data that has been read back into the FIFO memory. This enables the data transfer apparatus to retransmit the same data two or more times when necessary.
Here, the transfer control unit may have the first transfer performed intermittently with a predetermined interval, and the second transfer performed only when the retransmission request signal is received in a reception period that starts at the end of a first transfer and ends at a time given as the start of a next first transfer minus a period taken between (1) reception of the retransmission request signal and (2) an end of the second transfer.
When retransmission can be repeatedly performed for the same data, a retransmission request signal for a set of data will only be accepted during a period where the data can be transmitted without interfering with the transmission of the next set of data. By operating in this way, a data transfer apparatus can avoid delays in data transfer that occur due to retransmission of data.
Here, the transfer control unit may have the first transfer and the second transfer transfer an amount of data that is equal to an input amount, the input amount being an amount of data received from the first external device in the predetermined interval, and the receiving unit may include a FIFO memory for temporarily storing data that is received in order from the first external device, the FIFO memory having a storage capacity that is at least equal to the input amount.
With the stated construction, the first transfer and second transfer transfer an amount of data that is equal to the amount of data inputted from the first external device in the predetermined period. Since the data is inputted and outputted in balanced amounts, underflows and overflows can be avoided in the FIFO memory.
Here, the retransmission request signal may be an infrared signal, the retransmission request receiving unit may include an infrared signal sensor including an infrared signal receiver, and the output unit may be an infrared signal emitter that converts the received data into an infrared signal and outputs the infrared signal.
The stated construction uses infrared signal communication. While the transmission of signals can be impeded by physical obstacles, the present data transfer apparatus increases the number of retransmissions that can be performed for data, even when the data needs to be transferred in almost real-time. This greatly increases the probability of the data being properly transferred.
Here, the first external device and the receiving unit maybe connected via ISDN (Integrated Services Digital Network) lines, the data received from the first external device may be multiplexed into a signal, and the receiving unit may demultiplex the data from the signal.
The above data transfer apparatus can transfer data for a videophone or the like that is inputted via an ISDN in almost real-time.
Here, the transfer control unit may have the first transfer performed intermittently with a predetermined interval, and the second transfer performed only when the retransmission request signal is received in a reception period that starts at the end of a first transfer and ends at a time given as the start of a next first transfer minus a period taken between (1) reception of the retransmission request signal and (2) an end of the second transfer.
When retransmission can be repeatedly performed for the same data, a retransmission request signal for a set of data will only be accepted during a period where the data can be transmitted without interfering with the transmission of the next set of data. By operating in this way, a data transfer apparatus can avoid delays in data transfer that occur due to retransmission of data.
Here, the transfer control unit may have the first transfer and the second transfer transfer an amount of data that is equal to an input amount, the input amount being an amount of data received from the first external device in the predetermined interval, and the receiving unit may include a FIFO memory for temporarily storing data that is received in order from the first external device, the FIFO memory having a storage capacity that is at least equal to the input amount.
With the stated construction, the first transfer and second transfer transfer an amount of data that is equal to the amount of data inputted from the first external device in the predetermined period. Since the data is inputted and outputted in balanced amounts, underflows and overflows can be avoided in the FIFO memory.
Here, the retransmission request signal may be an infrared signal, the retransmission request receiving unit may include an infrared signal sensor including an infrared signal receiver, and the output unit may be an infrared signal emitter that converts the received data into an infrared signal and outputs the infrared signal.
The stated construction uses infrared signal communication. While the transmission of signals can be impeded by physical obstacles, the present data transfer apparatus increases the number of retransmissions that can be performed for data, even when the data needs to be transferred in almost real-time. This greatly increases the probability of the data being properly transferred.
Here, the first external device and the receiving unit may be connected via ISDN (Integrated Services Digital Network) lines, the data received from the first external device may be multiplexed into a signal, and the receiving unit may demultiplex the data from the signal.
The above data transfer apparatus can transfer data for a videophone or the like that is inputted via an ISDN in almost real-time.
The first object of the present invention can also be achieved by a data transfer system including a first apparatus and a second apparatus, the first apparatus receiving data that needs to be transferred in real time from an external device and outputting the data to the second apparatus, the first apparatus including: a first receiving unit for receiving data from the external device; a storage unit for storing data received by the first receiving unit; an output unit for receiving data and outputting the data to the second apparatus; a retransmission request receiving unit for receiving the retransmission request signal from the second apparatus; and a transfer control unit for having a first transfer performed when the first receiving unit has received data from the external device and a second transfer performed when the retransmission request receiving unit has received the retransmission request signal, the first transfer transferring the data directly to both the output unit and the storage unit in parallel using DMA, and the second transfer transferring data, which has already been stored in the storage unit by the first transfer, to the output unit, the second apparatus including: a second receiving unit for receiving data outputted by the first apparatus; and a retransmission request issuing unit for judging, when the second receiving unit has received data, whether the data has been properly received and outputting a retransmission request signal to the first apparatus when the data has not been properly received.
With the stated construction, the data is transferred by DMA directly from the receiving unit to the storage unit and the output unit in parallel. Transfer to two components is performed in a single step and is performed without the data passing the CPU. This means that the data transfer system can transfer data at high speed.
The second object of the present invention can also be achieved by having the second transfer transfer data from the storage unit to the output unit using DMA.
With the stated construction, when the second receiving unit fails to receive the data from the first apparatus properly, the data stored in the storage unit is transferred to the output unit using DMA. This means that the data is not transferred via a processing unit such as a CPU. This alleviates the processing load of the CPU and means that the data transfer system can transfer data at high speed.
Here, the storage unit may be a FIFO memory that temporarily stores data received from the first receiving unit, and the second transfer may also transfer the data outputted by the FIFO memory back into the FIFO memory using DMA.
The stated construction is capable of high-speed data reads and stores the data that has been read back into the FIFO memory. This enables the data transfer apparatus to retransmit the same data two or more times when necessary.
Here, the transfer control unit may have the first transfer performed intermittently with a predetermined interval, and the second transfer performed only when the retransmission request signal is received in a reception period that starts at the end of a first transfer and ends at a time given as the start of a next first transfer minus a period taken between (1) reception of the retransmission request signal and (2) an end of the second transfer.
When retransmission can be repeatedly performed for the same data, a retransmission request signal for a set of data will only be accepted during a period where the data can be transmitted without interfering with the transmission of the next set of data. By operating in this way, a data transfer system can avoid delays in data transfer that occur due to retransmission of data.
Here, the transfer control unit may have the first transfer and the second transfer transfer an amount of data that is equal to an input amount, the input amount being an amount of data received from the first external device in the predetermined interval, and the first receiving unit may include a FIFO memory for temporarily storing data that is received in order from the external device, the FIFO memory having a storage capacity that is at least equal to the input amount.
With the stated construction, the first transfer and second transfer transfer an amount of data that is equal to the unit by which data is inputted from the first external device. Since the data is inputted and outputted in balanced amounts, underflows and overflows can be avoided in the FIFO memory.
Here, the retransmission request signal may be an infrared signal, the retransmission request receiving unit may include an infrared signal sensor including an infrared signal receiver, and the output unit may be an infrared signal emitter that converts the received data into an infrared signal and outputs the infrared signal.
The stated construction uses infrared signal communication. While the transmission of signals can be impeded by physical obstacles, the present data transfer system increases the number of retransmissions that can be performed for data, even when the data needs to be transferred in almost real-time. This greatly increases the probability of the data being properly transferred.
The first object of the present invention can also be achieved by a data transfer method that has a data transfer apparatus receive data, which should be transferred in real time, from a first external device and output the data to a second external device, the second external device receiving the outputted data and outputting a retransmission request signal for the data to the data transfer apparatus when the data is not received properly, the data transfer apparatus including a storage unit for storing data and an output unit for outputting data to the second external device, and the data transfer method including: a receiving step for receiving data from the first external device; a retransmission request receiving step for receiving the retransmission request signal from the second external device; and a transfer control step for having a first transfer performed when the receiving step has received data from the first external device and a second transfer performed when the retransmission request receiving step has received the retransmission request signal, the first transfer transferring the data directly to both the output unit and the storage unit in parallel using DMA, and the second transfer transferring data, which has already been stored in the storage unit by the first transfer, to the output unit; and an output step for having the output unit output the transferred data to the second external device.
With the stated method, the data received in the receiving step is transferred by DMA directly to the storage unit and the output unit in parallel. Transfer to two components is performed in a single step and is performed without the data passing the CPU. This means that the data transfer method can transfer data at high speed.
The second object of the present invention can also be achieved by having the second transfer transfer the data stored in the storage unit to the output unit using DMA.
With the stated method, when a retransmission request signal has been received, the data stored in the storage unit is transferred to the output unit using DMA. This means that the data is not transferred via a processing unit such as a CPU. This alleviates the processing load of the CPU and means that the data transfer method can transfer data at high speed.
Here, the storage unit may be a FIFO memory that temporarily stores data received from the first external device, and the second transfer may also transfer the data outputted by the FIFO memory back into the FIFO memory using DMA.
The stated construction is capable of high-speed data reads and stores the data that has been read back into the FIFO memory. This enables the data transfer apparatus to retransmit the same data two or more times when necessary.